package com.dhcc.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.base.BaseService;
import com.dhcc.entity.SysResource;
import com.dhcc.response.SysResourceListTree;

import java.util.List;

/**
 * 资源表接口层
 *
 * @ProjectName Dhcc-Cloud
 * @PackageName com.dhcc.service
 * @Title SysResourceService
 * @Date 2024/12/5 下午10:18
 * @Author LiuGuoting
 */
public interface SysResourceService extends BaseService<SysResource> {

    /**
     * 自定义分页查询资源列表树
     *
     * @param page 分页对象
     * @param sysResource 资源对象实体
     * @return IPage<SysResourceVO>
     */
    IPage<SysResourceListTree> selectResourcePage(IPage<SysResource> page, SysResource sysResource);

    /**
     * 查询资源树
     *
     * @return List<SysResourceVO>
     */
    List<SysResourceListTree> listResourceTree();

    /**
     * 新增资源
     *
     * @param sysResource 资源信息实体对象
     * @return Boolean
     */
    Boolean addResource(SysResource sysResource);

    /**
     * 更新资源
     *
     * @param sysResource 资源信息实体对象
     * @return Boolean
     */
    Boolean updateResource(SysResource sysResource);

    /**
     * 查询资源详情（基本信息）
     *
     * @param id 资源 ID
     * @return SysResource
     */
    SysResource getResourceById(String id);

    /**
     * 启用/禁用资源
     *
     * @param id 资源 ID
     * @param status 资源状态（0：启用，1：禁用）
     * @return Boolean
     */
    Boolean changeResourceStatus(String id, int status);

    /**
     * 批量启用/禁用资源
     *
     * @param ids 资源 ID 列表
     * @param status 资源状态（0：启用，1：禁用）
     * @return Boolean
     */
    Boolean changeResourceStatuses(List<String> ids, int status);
}
